	LIST	P=16F877A
	RADIX	HEX
	INCLUDE	<P16F877A.INC>

loops	equ	0x0D
loops2	equ	0x0E
conta	equ	0x35;0x0C
decenas equ     0x36
unidades equ    0x37
aux     equ     0x38
aux2    equ     0x39

reset	ORG	0x00
	goto	inicio

	ORG	0x05

retardo	movlw	D'100'
	movwf	loops

top2	movlw	D'110'
	movwf	loops2

top	nop
	nop
	nop
	nop
	nop
	nop
	decfsz	loops2,F
	goto	top
	decfsz	loops,F
	goto 	top2
	retlw	0

s10     incf    decenas,F
        clrf    unidades
        retlw	0

toUNI   movf    aux,W
        addwf   unidades,0 ; yo agregue
        movwf   unidades
        movf    unidades,W

        SUBLW	0x09 ;9 decimal
	btfss	STATUS,C
        call    s10             ;incrementa las decenas

        ;;sublw   0x0A
        ;xorlw   0x00
        ;;btfss   STATUS,Z    ;la operacion XOR dio resultado cero?
        ;;goto    ciclo
        ;;incf    decenas,F
        ;movwf   unidades
        ;clrf    unidades
        ;;movwf   aux
        goto    ciclo
        


bits5   ;clrf    decenas
        ;clrf    unidades
        movf    conta,W
        movwf   aux 
        btfss   aux,4       ;es 4to bit igual a 1
        goto    bits4       ;NO
        incf    decenas,F
        clrf    W
        movfw   unidades
        addlw   0x06
        movwf   unidades
        ;call    retardo;yo lo puse
        goto    bits4

bits4   movf    aux,W
        andlw   b'01111'
        movwf   aux
        btfss   aux,3       ;es bit 3 = 1
        goto    toUNI       ;NO
        movfw   aux
        andlw   b'0110'
        xorlw   0x00
        btfsc   STATUS,Z    ;la operacion XOR dio resultado cero?
        goto    toUNI       ;SI
        incf    decenas,F
        movfw   aux
        andlw   b'0111'
        movwf   unidades
        decf    unidades,F
        decf    unidades,F
        ;call    retardo;yo lo puse
        goto    ciclo

inicio	bsf	STATUS,RP0
        bcf     STATUS,RP1
	movlw	0x00
	movwf	TRISD
        movwf   TRISC
	movlw	0xFF
	movwf	TRISB
	bcf	STATUS,RP0
	clrf	conta
        clrf    decenas
        clrf    unidades

ciclo	movf	decenas,W
	movwf	PORTC
        movf    unidades,W
        movwf   PORTD
	call	retardo

pulsa	btfss	PORTB,0
	goto	pulsa
	call 	retardo
	btfss	PORTB,0
	goto	pulsa
	incf	conta,F
	movf	conta,W
	SUBLW	0x28 ;31 decimal
	btfss	STATUS,C
	goto	inicio
	goto	bits5

        END